perm filename GAME.LAP[206,JMC]1 blob
sn#072128 filedate 1973-11-14 generic text, type T, neo UTF8
(DEFPROP GAMEFNS (GAMEFNS VALMAX VALMAXLIS VALMIN VALMINLIS RECTIFY COMMONTAIL COMMONHEAD) VALUE)
(LAP VALMAX SUBR)
(PUSH P 1)
(PUSH P 2)
(PUSH P 3)
(CALL 1 (E RECTIFY) S)
(MOVE 3 0 P)
(MOVE 2 -1 P)
(CALL 3 (E TER) S)
(JUMPE 1 TAG2)
(HLRZ@ 1 0 P)
(PUSH P 1)
(HLRZ@ 1 -2 P)
(PUSH P 1)
(MOVE 1 -4 P)
(CALL 1 (E RECTIFY) S)
(MOVE 3 -2 P)
(MOVE 2 -3 P)
(CALL 3 (E IMVAL) S)
(MOVE 2 -1 P)
(CALL 2 (E *MIN) S)
(POP P 2)
(CALL 2 (E *MAX) S)
(MOVE 2 -3 P)
(CALL 2 (E CONS) S)
(SUB P (C 1 0 1 0))
(JRST 0 TAG1)
TAG2 (MOVE 1 -2 P)
(CALL 1 (E RECTIFY) S)
(MOVE 3 0 P)
(MOVE 2 -1 P)
(CALL 3 (E SUCCESSORS) S)
(MOVE 3 0 P)
(MOVE 2 -1 P)
(CALL 3 (E VALMAXLIS) S)
TAG1 (SUB P (C 3 0 3 0))
(POPJ P)
NIL
(LAP VALMAXLIS SUBR)
(PUSH P 1)
(PUSH P 2)
(PUSH P 3)
(JUMPN 1 TAG2)
(MOVE 1 2)
(JRST 0 TAG1)
TAG2 (MOVE 3 0 P)
(MOVE 2 -1 P)
(HLRZ@ 1 -2 P)
(CALL 3 (E VALMIN) S)
(PUSH P 1)
(HLRZ@ 2 -1 P)
(HLRZ@ 1 1)
(CALL 2 (E *LESS) S)
(JUMPN 1 TAG7)
(MOVE 1 -1 P)
(JRST 0 TAG6)
TAG7 (PUSH P -3 P)
(HRRZ@ 1 0 P)
(PUSH P 1)
(HLRZ@ 2 -2 P)
(HLRZ@ 1 -4 P)
(CALL 2 (E *LESS) S)
(JUMPN 1 TAG14)
(MOVE 2 -4 P)
(JRST 0 TAG13)
TAG14 (MOVE 2 -2 P)
TAG13 (MOVE 3 -3 P)
(POP P 1)
(CALL 3 (E VALMAXLIS) S)
(SUB P (C 1 0 1 0))
TAG6 (SUB P (C 1 0 1 0))
TAG1 (SUB P (C 3 0 3 0))
(POPJ P)
NIL
(LAP VALMIN SUBR)
(PUSH P 1)
(PUSH P 2)
(PUSH P 3)
(CALL 1 (E RECTIFY) S)
(MOVE 3 0 P)
(MOVE 2 -1 P)
(CALL 3 (E TER) S)
(JUMPE 1 TAG2)
(HLRZ@ 1 0 P)
(PUSH P 1)
(HLRZ@ 1 -2 P)
(PUSH P 1)
(MOVE 1 -4 P)
(CALL 1 (E RECTIFY) S)
(MOVE 3 -2 P)
(MOVE 2 -3 P)
(CALL 3 (E IMVAL) S)
(MOVE 2 -1 P)
(CALL 2 (E *MIN) S)
(POP P 2)
(CALL 2 (E *MAX) S)
(MOVE 2 -3 P)
(CALL 2 (E CONS) S)
(SUB P (C 1 0 1 0))
(JRST 0 TAG1)
TAG2 (MOVE 1 -2 P)
(CALL 1 (E RECTIFY) S)
(MOVE 3 0 P)
(MOVE 2 -1 P)
(CALL 3 (E SUCCESSORS) S)
(MOVE 3 0 P)
(MOVE 2 -1 P)
(CALL 3 (E VALMINLIS) S)
TAG1 (SUB P (C 3 0 3 0))
(POPJ P)
NIL
(LAP VALMINLIS SUBR)
(PUSH P 1)
(PUSH P 2)
(PUSH P 3)
(JUMPN 1 TAG2)
(MOVE 1 3)
(JRST 0 TAG1)
TAG2 (MOVE 3 0 P)
(MOVE 2 -1 P)
(HLRZ@ 1 -2 P)
(CALL 3 (E VALMAX) S)
(PUSH P 1)
(HLRZ@ 2 -2 P)
(HLRZ@ 1 1)
(CALL 2 (E *GREAT) S)
(JUMPN 1 TAG7)
(MOVE 1 -2 P)
(JRST 0 TAG6)
TAG7 (PUSH P -2 P)
(PUSH P -4 P)
(HRRZ@ 1 0 P)
(PUSH P 1)
(HLRZ@ 2 -3 P)
(HLRZ@ 1 -4 P)
(CALL 2 (E *GREAT) S)
(JUMPN 1 TAG14)
(MOVE 3 -4 P)
(JRST 0 TAG13)
TAG14 (MOVE 3 -3 P)
TAG13 (MOVE 2 -2 P)
(POP P 1)
(CALL 3 (E VALMINLIS) S)
(SUB P (C 2 0 2 0))
TAG6 (SUB P (C 1 0 1 0))
TAG1 (SUB P (C 3 0 3 0))
(POPJ P)
NIL
(LAP RECTIFY SUBR)
(PUSH P 1)
(MOVE 2 (SPECIAL P1) S)
(CALL 2 (E COMMONTAIL) S)
(PUSH P 1)
(PUSH P (C 0 0 (QUOTE NIL) 0))
TAG1 (MOVE 2 (SPECIAL P1) S)
(MOVE 1 -1 P)
(CALL 2 (E EQUAL) S)
(JUMPN 1 TAG2)
(CALL 0 (E REVERT) S)
(JRST 0 TAG1)
TAG2 (MOVE 2 (SPECIAL P1) S)
(MOVE 1 -2 P)
(CALL 2 (E LISTSUBT) S)
(MOVEM 1 0 P)
TAG3 (MOVE 1 0 P)
(JUMPN 1 TAG11)
(MOVE 1 -2 P)
(JRST 0 TAG4)
TAG11 (HLRZ@ 1 0 P)
(CALL 1 (E UPDATE) S)
(HRRZ@ 1 0 P)
(MOVEM 1 0 P)
(JRST 0 TAG3)
TAG4 (SUB P (C 3 0 3 0))
(POPJ P)
NIL
(LAP COMMONTAIL SUBR)
(PUSH P 2)
(CALL 1 (E REVERSE) S)
(EXCH 1 0 P)
(CALL 1 (E REVERSE) S)
(MOVE 2 1)
(POP P 1)
(CALL 2 (E COMMONHEAD) S)
(JCALL 1 (E REVERSE) S)
NIL
(LAP COMMONHEAD SUBR)
(PUSH P 1)
(PUSH P 2)
(JUMPE 1 TAG4)
(JUMPE 2 TAG4)
(HLRZ@ 2 2)
(HLRZ@ 1 1)
(CALL 2 (E EQUAL) S)
(JUMPN 1 TAG2)
TAG4 (MOVEI 1 (QUOTE NIL))
(JRST 0 TAG1)
TAG2 (HLRZ@ 1 -1 P)
(HRRZ@ 2 0 P)
(PUSH P 1)
(HRRZ@ 1 -2 P)
(CALL 2 (E COMMONHEAD) S)
(POP P 2)
(CALL 2 (E XCONS) S)
TAG1 (SUB P (C 2 0 2 0))
(POPJ P)
NIL